"""
这个是用来对来稿试卷试卷进行查新时，让试卷题目的输入自动化完成（不再手动）的例子。

这个模块的原理是调用web浏览球，然后将题目的内容以参数的方式传递给菁优网，让原本的手工截图上传的过程实现自动化。

所以这个就要求首先要登陆菁优网（否则会被卡住）。

######################
### 为了方便，请将word文件放在本文档同目录下。
### 必须先将word文件里的mathtype等公式先转成latex字符,可以使用mathtype2latex.bas文件里的宏代码。
######################
"""

from sys import path
import os

pwd = os.path.abspath("./")

this_library_path = os.path.join(pwd,"autowork_for_office/")
path.extend([this_library_path])

from typing import List
from docx import Document
from docxes.utils import *

import webbrowser

# set the web's url
# It should login first!!!
SEARCH_URL = "http://www.jyeoo.com/search?qb="


def invoke_browser(questions: List[str]) -> bool:
    for question in questions:
        search_str = SEARCH_URL + question
        webbrowser.open(search_str)


#############################################
#### 注意，这个文件必须提前把mathtype等公式转成
#### 字符公式，如latex等。
#############################################
file_str = input("请输入公式转码后的word文件名：")
#TODO 
# 这里可以检查一下用户的输入是否合理，如果不合理就循环，直到合理或者用户选择退出。

doc = Document(pwd + file_str + ".docx")

paras = doc.paragraphs

question_dict = get_blocks_paras(paras, RE_QUESTION_STRS, RE_IN_SQUARE_BRACKET_STR)

for k, v in question_dict.items():
    question_str = ""
    for para_num in v["paras"]:
        question_str += paras[para_num].text
    invoke_str = SEARCH_URL + question_str
    webbrowser.open(invoke_str)
